#pragma once

#include "Core/Macros.h"
#if SELAH_WINDOWS
    #ifndef WIN32_LEAN_AND_MEAN
        #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers.
    #endif

#include <windows.h>
#endif

// C RunTime Header Files
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <iomanip>

#include <format> 
#include <span>  

#include <list>
#include <string>
#include <string_view>
#include <wrl.h>
#include <shellapi.h>
#include <memory>
#include <unordered_map>
#include <vector>
#include <array>
#include <unordered_map>
#include <cassert>
#include <chrono>

#include <d3d12.h>
#include <dxgi1_6.h>

#include <DirectXMath.h>

#ifdef _DEBUG
	#include <dxgidebug.h>
#endif

#include <imgui.h>
#include <imgui_impl_glfw.h>
#include <imgui_impl_dx12.h>
